home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 1 / Gold Medal Software Volume 1 (Gold Medal) (1994).iso / prog / tpwprog6.arj / ABOUT.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-07-02  |  2.0 KB  |  97 lines

  1. { about.pas -- Display "About box" dialog }
  2.  
  3. program About;
  4.  
  5. {$R about.res}
  6.  
  7. uses WinTypes, WinProcs, WObjects;
  8.  
  9. const
  10.  
  11.   id_Menu  = 100;    { Menu resource ID }
  12.   cm_About = 101;    { About command ID }
  13.   cm_Quit  = 102;    { Exit command ID }
  14.  
  15. type
  16.  
  17.   AboutApplication = object(TApplication)
  18.     procedure InitMainWindow; virtual;
  19.   end;
  20.  
  21.   PAboutWindow = ^AboutWindow;
  22.   AboutWindow = object(TWindow)
  23.     constructor Init(AParent: PWindowsObject; ATitle: PChar);
  24.     procedure CMAbout(var Msg: TMessage);
  25.       virtual cm_First + cm_About;
  26.     procedure CMQuit(var Msg: TMessage);
  27.       virtual cm_First + cm_Quit;
  28.   end;
  29.  
  30.  
  31. { AboutApplication }
  32.  
  33. {- Initialize AboutApplication object's window }
  34. procedure AboutApplication.InitMainWindow;
  35. begin
  36.   MainWindow := New(PAboutWindow, Init(nil, 'About'))
  37. end;
  38.  
  39.  
  40. { AboutWindow }
  41.  
  42. {- Construct AboutWindow object }
  43. constructor AboutWindow.Init(AParent: PWindowsObject; ATitle: PChar);
  44. begin
  45.   TWindow.Init(AParent, ATitle);
  46.   Attr.Menu := LoadMenu(HInstance, PChar(id_Menu))
  47. end;
  48.  
  49. {- Display "About box" dialog }
  50. procedure AboutWindow.CMAbout(var Msg: TMessage);
  51. var
  52.   Dialog: TDialog;  { Takes about 38 bytes of stack space }
  53. begin
  54.   Dialog.Init(@Self, 'About');
  55.   Dialog.Execute;
  56.   Dialog.Done
  57. end;
  58.  
  59. (* Alternate #1
  60. procedure AboutWindow.CMAbout(var Msg: TMessage);
  61. var
  62.   P: PDialog;
  63. begin
  64.   P := New(PDialog, Init(@Self, 'About'));
  65.   Application^.ExecDialog(P)
  66. end;
  67. *)
  68.  
  69. (* Alternate #2
  70. procedure AboutWindow.CMAbout(var Msg: TMessage);
  71. begin
  72.   Application^.ExecDialog(New(PDialog, Init(@Self, 'About')))
  73. end;
  74. *)
  75.  
  76. {- Quit program }
  77. procedure AboutWindow.CMQuit(var Msg: TMessage);
  78. begin
  79.   CloseWindow
  80. end;
  81.  
  82. var
  83.  
  84.   AboutApp: AboutApplication;
  85.  
  86. begin
  87.   AboutApp.Init('AboutApp');
  88.   AboutApp.Run;
  89.   AboutApp.Done
  90. end.
  91.  
  92.  
  93. {--------------------------------------------------------------
  94.   Copyright (c) 1991 by Tom Swan. All rights reserved.
  95.   Revision 1.00    Date: 3/12/1991
  96. ---------------------------------------------------------------}
  97.